Product details
- Publisher : Pearson College Div; Subsequent edition (August 1, 2002)
- Language : English
- Hardcover : 1024 pages
- ISBN-10 : 013061775X
-
ISBN-13 : 978-0130617750
کتاب 80X86 IBM PC and Compatible Computers: Assembly Language, Design, and Interfacing Subsequent Edition
Editorial Reviews
From the Back Cover
Praised by experts for its clarity and topical breadth, this visually appealing text provides an easy-to-understand, systematic approach to teaching the fundamentals of 80x86 assembly language programming and PC architecture. It offers readers a fun, hands-on learning experience and reinforces concepts with numerous examples and review questions. It uses the Debug utility to show what action the instruction performs, and then provides a sample program to show its application. The text delves into architecture, supporting chips, buses, interfacing techniques, system programming, hard disk characteristics, and more.
The fourth edition:
- Covers all the 80x86 microprocessors from the 8088 to the Pentium Pro.
- Combines assembly and C programming, and covers C programming in the last section of each chapter.
- Introduces the 80x86 instructions with examples of how they are used.
- Ensures a basic understanding of binary and hex numbering systems.
- Discusses and analyzes hardware differences among 8086, 286, 386, 486, Pentium, and Pentium Pro chips.
- Discusses 8-bit; 16-bit, and 32-bit interfacing of 80x86 microprocessors.
- Shows a real-world approach to PC system programming by using fragments of programs from the IBM PC technical reference.
- Provides an overview of the USB bus.
About the Author
Muhammad Ali Mazidi holds Master's degrees from both Southern Methodist University and the University of Texas at Dallas, and currently is a.b.d. on his Ph.D. in the Electrical Engineering Department of Southern Methodist University. He is a co-founder and chief researcher of Microprocessor Education Group, a company dedicated to bringing knowledge of microprocessors to the widest possible audience. He also teaches microprocessor-based system design at DeVry Institute of Technology in Dallas, Texas.
Janice Gillispie Mazidi has a Master of Science degree in Computer Science from the University of North Texas. After several years experience as a, software engineer in Dallas, she co-founded Microprocessor Education Group, where she is the chief technical writer, production manager, and is responsible for software development and testing.
The Mazidis have been married since 1985 and have two sons, Robert Nabil and Michael Jamal.
Excerpt. © Reprinted by permission. All rights reserved.
PREFACE TO VOLUMES I AND II
Purpose
This combined volume is intended for use in college-level courses in which both Assembly language programming and 80x86 PC interfacing are discussed. It not only builds the foundation of Assembly language programming, but also provides a comprehensive treatment of 80x86 PC design and interfacing for students in engineering and computer science disciplines. This volume is intended for those who wish to gain an in-depth understanding of the internal working of the IBM PC, PS, and 80x86 compatible computers. It builds a foundation for the design and interfacing of microprocessor-based systems using the real-world example of the 80x86 IBM PC. In addition, it can also be used by practicing technicians, hardware engineers, computer scientists, and hobbyists who want to do PC interfacing and data acquisition.
Prerequisites
Readers should have a minimal familiarity with the IBM PC and the DOS operating system in addition to having had an introductory digital course. Knowledge of other programming languages would be helpful, but is not necessary.
Although a vast majority of current PCs use 386, 486, or Pentium microprocessors, their design is based on the IBM PC/AT, an 80286 microprocessor system introduced in 1984. A good portion of PC/AT features, hence its limitations, are based on the original IBM PC, an 8088 microprocessor system, introduced in 1981. In other words, one cannot expect to understand fully the architectural philosophy of the 80x86 PC and its expansion slot signals unless the 80286 PC/AT and its subset, the IBM PC/XT, are first understood. For this reason, we describe the 8088 and 80286 microprocessors in Chapter 9.
Contents of Volume I
A systematic, step-by-step approach has been used in covering various aspects of Assembly language programming. Many examples and sample programs are given to clarify concepts and provide students an opportunity to learn by doing. Review questions are provided at the end of each section to reinforce the main points of the section. We feel that one of the functions of a textbook is to familiarize the student with terminology used in technical literature and in industry, so we have followed that guideline in this text.
Chapter 0 covers concepts in number systems (binary, decimal, and hex) and computer architecture. Most students will have learned these concepts in previous courses, but Chapter 0 provides a quick overview for those students who have not learned these concepts, or who may need to refresh their memory.
Chapter 1 provides a brief history of the evolution of x86 microprocessors and an overview of the internal workings of the 8086 as a basis of all x86 processors. Chapter 1 should be used in conjunction with Appendix A (a tutorial introduction to DEBUG) so that the student can experiment with concepts being learned on the PC. The order of topics in Appendix A has been designed to correspond to the order of topics presented in Chapter 1. Thus, the student can begin programming with DEBUG without having to learn how to use an assembler.
Chapter 2 explains the use of assemblers to create programs. Although the programs in the book were developed and tested with Microsoft's MASM assembler, any Intel-compatible assembler such as Borland's TASM may be used.
Chapter 3 introduces the bulk of the logic and arithmetic instructions for unsigned numbers, plus bitwise operations in C.
Chapter 4 introduces DOS and BIOS interrupts. Programs in Assembly and C allow the student to get input from the keyboard and send output to the monitor. In addition, interrupt programming in C is described, as well as how to put Assembly language code in C programs.
Chapter 5 describes how to use macros to develop Assembly language programs in a more time-efficient and structured manner. We also cover INT 33H mouse function calls and mouse programming.
Chapter 6 covers arithmetic and logic instructions for signed numbers as well as string processing instructions.
Chapter 7 discusses modular programming and how to develop larger Assembly language programs by breaking them into smaller modules to be coded and tested separately. In addition, linking Assembly language modules with C programs is thoroughly explained.
Chapter 8 introduces some 32-bit concepts of 80386 and 80486 programming. Although this book emphasizes 16-bit programming, the 386/486 is introduced to help the student appreciate the power of 32-bit CPUs. Several programs are run across the 80x86 family to show the dramatic improvement in clock cycles with the newer CPUs.
Contents of Volume II
Chapter 9 describes the 8088 and 286 microprocessors and supporting chips in detail and shows how they are used in the original IBM PC/XT/AT. In addition, the origin and function of the address, data, and control signals of the ISA expansion slot are described.
Chapter 10 provides an introduction to various types of RAM and ROM memories, their interfacing to the microprocessor, the memory map of the 80x86 PC, the timing issue in interfacing memory to the ISA bus, and the checksum byte and parity bit techniques of ensuring data integrity in RAM and ROM.
Chapter 11 is dedicated to the interfacing of I/O ports, the use of IN and OUT instructions in the 80x86, and interfacing and programming of the 8255 programmable peripheral chip. We describe I/O programming in several languages, as well.
Chapter 12 covers the PC Interface Trainer and Bus Extender, which are used to interface PCs to devices for data acquisition such as LCDs, stepper motors, ADC, DAC, and sensors.
Chapter 13 discusses the use of the 8253/54 timer chip in the 80x86 PC, as well as how to generate music and time delays.
Chapter 14 is dedicated to the explanation of hardware and software interrupts, the use of the 8259 interrupt controller, the origin and assignment of IRQ signals on the expansion slots of the ISA bus, and exception interrupts in 80x86 microprocessors.
Chapter 15 is dedicated to direct memory access (DMA) concepts, the use of the 8237 DMA chip in the 80x86 PC, and DMA channels and associated signals on the ISA bus.
Chapter 16 covers the basics of video monitors and various video modes and adapters of the PC, in addition to the memory requirements of various video boards in graphics mode.
Chapter 17 discusses serial communication principles, the interfacing and programming of National Semiconductor's 8250/16450/16550 DART chip, Intel's 8251 USART chip, and verifying data integrity using the CRC method.
Chapter 18 covers the interfacing and programming of the keyboard in the 80x86 PC, in addition to printer port interfacing and programming. In addition, a discussion of various types of parallel ports such as EPP and ECP is included.
Chapter 19 discusses both floppy and hard disk storage organization and terminology. We also show how to write Assembly language programs to access files using INT 21 H DOS function calls.
Chapter 20 examines the 80x87 math coprocessor, its programming and interfacing, and IEEE single and double precision floating point data types.
Chapter 21 explores the programming and hardware of the 386 microprocessor, contrasts and explains real and protected modes, and discusses the implementation of virtual memory.
Chapter 22 is dedicated to the interfacing of high-speed memories and describes various types of DRAM, including EDO and SDRAM, and examines cache memory and various cache organizations and terminology in detail.
In Chapter 23 we describe the main features of the 486, Pentium and Pentium Pro and compare these microprocessors with the RISC processors. Chapter 23 also provides a discussion of MMX technology and how to write programs to detect which CPU a PC has.
Chapter 24 describes the MS DOS structure and the role of CON FIG.SYS and batch files in the 80x86 PC, the writing of TSR (terminate and stay resident) programs and device drivers.
Chapter 25 explains 80x86 PC memory terminology, such as conventional memory, expanded memory, upper memory block, high memory area, as well as MS DOS memory management.
Chapter 26 provides an overview of the IC technology including the recent advances in the IC fabrication, describes IC interfacing and system design issues, and covers error detection and correction.
Chapter 27 is dedicated to the discussion of the various types of PC buses, such as ISA, EISA, USB, their performance comparisons, the local bus and features of the PCI local bus.
In Chapter 28 we show how to use C language to access DOS function calls, BIOS interrupts, memory, input/output ports, and CMOS RAM of the 80x86.
Appendices
The appendices have been designed to provide all reference material required for the topics covered in this combined volume so that no additional references should be necessary.
Appendix A provides a tutorial introduction to DEBUG. Appendix B provides a listing of Intel's 8086 instruction set along with clock cycles for 80x86 microprocessors. Appendix C describes assembler directives with examples of their use. Appendix D lists some commonly used DOS 21 H function calls and INT 33H mouse functions. Appendix E lists the function calls for various BIOS interrupts. Appendix F provides a table ofd-1SCII codes. Appendix G lists the I/O map of 80x86-based ISA computers. Appendix H provides a description of the BIOS data area. Appendix I contains data sheets for various IC chips.
Lab Manual
The lab manual for this series is available on the following web site:
www.microdigitaled.com
Editorial Reviews
From the Back Cover
Praised by experts for its clarity and topical breadth, this visually appealing text provides an easy-to-understand, systematic approach to teaching the fundamentals of 80x86 assembly language programming and PC architecture. It offers readers a fun, hands-on learning experience and reinforces concepts with numerous examples and review questions. It uses the Debug utility to show what action the instruction performs, and then provides a sample program to show its application. The text delves into architecture, supporting chips, buses, interfacing techniques, system programming, hard disk characteristics, and more.
The fourth edition:
- Covers all the 80x86 microprocessors from the 8088 to the Pentium Pro.
- Combines assembly and C programming, and covers C programming in the last section of each chapter.
- Introduces the 80x86 instructions with examples of how they are used.
- Ensures a basic understanding of binary and hex numbering systems.
- Discusses and analyzes hardware differences among 8086, 286, 386, 486, Pentium, and Pentium Pro chips.
- Discusses 8-bit; 16-bit, and 32-bit interfacing of 80x86 microprocessors.
- Shows a real-world approach to PC system programming by using fragments of programs from the IBM PC technical reference.
- Provides an overview of the USB bus.
About the Author
Muhammad Ali Mazidi holds Master's degrees from both Southern Methodist University and the University of Texas at Dallas, and currently is a.b.d. on his Ph.D. in the Electrical Engineering Department of Southern Methodist University. He is a co-founder and chief researcher of Microprocessor Education Group, a company dedicated to bringing knowledge of microprocessors to the widest possible audience. He also teaches microprocessor-based system design at DeVry Institute of Technology in Dallas, Texas.
Janice Gillispie Mazidi has a Master of Science degree in Computer Science from the University of North Texas. After several years experience as a, software engineer in Dallas, she co-founded Microprocessor Education Group, where she is the chief technical writer, production manager, and is responsible for software development and testing.
The Mazidis have been married since 1985 and have two sons, Robert Nabil and Michael Jamal.
Excerpt. © Reprinted by permission. All rights reserved.
PREFACE TO VOLUMES I AND II
Purpose
This combined volume is intended for use in college-level courses in which both Assembly language programming and 80x86 PC interfacing are discussed. It not only builds the foundation of Assembly language programming, but also provides a comprehensive treatment of 80x86 PC design and interfacing for students in engineering and computer science disciplines. This volume is intended for those who wish to gain an in-depth understanding of the internal working of the IBM PC, PS, and 80x86 compatible computers. It builds a foundation for the design and interfacing of microprocessor-based systems using the real-world example of the 80x86 IBM PC. In addition, it can also be used by practicing technicians, hardware engineers, computer scientists, and hobbyists who want to do PC interfacing and data acquisition.
Prerequisites
Readers should have a minimal familiarity with the IBM PC and the DOS operating system in addition to having had an introductory digital course. Knowledge of other programming languages would be helpful, but is not necessary.
Although a vast majority of current PCs use 386, 486, or Pentium microprocessors, their design is based on the IBM PC/AT, an 80286 microprocessor system introduced in 1984. A good portion of PC/AT features, hence its limitations, are based on the original IBM PC, an 8088 microprocessor system, introduced in 1981. In other words, one cannot expect to understand fully the architectural philosophy of the 80x86 PC and its expansion slot signals unless the 80286 PC/AT and its subset, the IBM PC/XT, are first understood. For this reason, we describe the 8088 and 80286 microprocessors in Chapter 9.
Contents of Volume I
A systematic, step-by-step approach has been used in covering various aspects of Assembly language programming. Many examples and sample programs are given to clarify concepts and provide students an opportunity to learn by doing. Review questions are provided at the end of each section to reinforce the main points of the section. We feel that one of the functions of a textbook is to familiarize the student with terminology used in technical literature and in industry, so we have followed that guideline in this text.
Chapter 0 covers concepts in number systems (binary, decimal, and hex) and computer architecture. Most students will have learned these concepts in previous courses, but Chapter 0 provides a quick overview for those students who have not learned these concepts, or who may need to refresh their memory.
Chapter 1 provides a brief history of the evolution of x86 microprocessors and an overview of the internal workings of the 8086 as a basis of all x86 processors. Chapter 1 should be used in conjunction with Appendix A (a tutorial introduction to DEBUG) so that the student can experiment with concepts being learned on the PC. The order of topics in Appendix A has been designed to correspond to the order of topics presented in Chapter 1. Thus, the student can begin programming with DEBUG without having to learn how to use an assembler.
Chapter 2 explains the use of assemblers to create programs. Although the programs in the book were developed and tested with Microsoft's MASM assembler, any Intel-compatible assembler such as Borland's TASM may be used.
Chapter 3 introduces the bulk of the logic and arithmetic instructions for unsigned numbers, plus bitwise operations in C.
Chapter 4 introduces DOS and BIOS interrupts. Programs in Assembly and C allow the student to get input from the keyboard and send output to the monitor. In addition, interrupt programming in C is described, as well as how to put Assembly language code in C programs.
Chapter 5 describes how to use macros to develop Assembly language programs in a more time-efficient and structured manner. We also cover INT 33H mouse function calls and mouse programming.
Chapter 6 covers arithmetic and logic instructions for signed numbers as well as string processing instructions.
Chapter 7 discusses modular programming and how to develop larger Assembly language programs by breaking them into smaller modules to be coded and tested separately. In addition, linking Assembly language modules with C programs is thoroughly explained.
Chapter 8 introduces some 32-bit concepts of 80386 and 80486 programming. Although this book emphasizes 16-bit programming, the 386/486 is introduced to help the student appreciate the power of 32-bit CPUs. Several programs are run across the 80x86 family to show the dramatic improvement in clock cycles with the newer CPUs.
Contents of Volume II
Chapter 9 describes the 8088 and 286 microprocessors and supporting chips in detail and shows how they are used in the original IBM PC/XT/AT. In addition, the origin and function of the address, data, and control signals of the ISA expansion slot are described.
Chapter 10 provides an introduction to various types of RAM and ROM memories, their interfacing to the microprocessor, the memory map of the 80x86 PC, the timing issue in interfacing memory to the ISA bus, and the checksum byte and parity bit techniques of ensuring data integrity in RAM and ROM.
Chapter 11 is dedicated to the interfacing of I/O ports, the use of IN and OUT instructions in the 80x86, and interfacing and programming of the 8255 programmable peripheral chip. We describe I/O programming in several languages, as well.
Chapter 12 covers the PC Interface Trainer and Bus Extender, which are used to interface PCs to devices for data acquisition such as LCDs, stepper motors, ADC, DAC, and sensors.
Chapter 13 discusses the use of the 8253/54 timer chip in the 80x86 PC, as well as how to generate music and time delays.
Chapter 14 is dedicated to the explanation of hardware and software interrupts, the use of the 8259 interrupt controller, the origin and assignment of IRQ signals on the expansion slots of the ISA bus, and exception interrupts in 80x86 microprocessors.
Chapter 15 is dedicated to direct memory access (DMA) concepts, the use of the 8237 DMA chip in the 80x86 PC, and DMA channels and associated signals on the ISA bus.
Chapter 16 covers the basics of video monitors and various video modes and adapters of the PC, in addition to the memory requirements of various video boards in graphics mode.
Chapter 17 discusses serial communication principles, the interfacing and programming of National Semiconductor's 8250/16450/16550 DART chip, Intel's 8251 USART chip, and verifying data integrity using the CRC method.
Chapter 18 covers the interfacing and programming of the keyboard in the 80x86 PC, in addition to printer port interfacing and programming. In addition, a discussion of various types of parallel ports such as EPP and ECP is included.
Chapter 19 discusses both floppy and hard disk storage organization and terminology. We also show how to write Assembly language programs to access files using INT 21 H DOS function calls.
Chapter 20 examines the 80x87 math coprocessor, its programming and interfacing, and IEEE single and double precision floating point data types.
Chapter 21 explores the programming and hardware of the 386 microprocessor, contrasts and explains real and protected modes, and discusses the implementation of virtual memory.
Chapter 22 is dedicated to the interfacing of high-speed memories and describes various types of DRAM, including EDO and SDRAM, and examines cache memory and various cache organizations and terminology in detail.
In Chapter 23 we describe the main features of the 486, Pentium and Pentium Pro and compare these microprocessors with the RISC processors. Chapter 23 also provides a discussion of MMX technology and how to write programs to detect which CPU a PC has.
Chapter 24 describes the MS DOS structure and the role of CON FIG.SYS and batch files in the 80x86 PC, the writing of TSR (terminate and stay resident) programs and device drivers.
Chapter 25 explains 80x86 PC memory terminology, such as conventional memory, expanded memory, upper memory block, high memory area, as well as MS DOS memory management.
Chapter 26 provides an overview of the IC technology including the recent advances in the IC fabrication, describes IC interfacing and system design issues, and covers error detection and correction.
Chapter 27 is dedicated to the discussion of the various types of PC buses, such as ISA, EISA, USB, their performance comparisons, the local bus and features of the PCI local bus.
In Chapter 28 we show how to use C language to access DOS function calls, BIOS interrupts, memory, input/output ports, and CMOS RAM of the 80x86.
Appendices
The appendices have been designed to provide all reference material required for the topics covered in this combined volume so that no additional references should be necessary.
Appendix A provides a tutorial introduction to DEBUG. Appendix B provides a listing of Intel's 8086 instruction set along with clock cycles for 80x86 microprocessors. Appendix C describes assembler directives with examples of their use. Appendix D lists some commonly used DOS 21 H function calls and INT 33H mouse functions. Appendix E lists the function calls for various BIOS interrupts. Appendix F provides a table ofd-1SCII codes. Appendix G lists the I/O map of 80x86-based ISA computers. Appendix H provides a description of the BIOS data area. Appendix I contains data sheets for various IC chips.
Lab Manual
The lab manual for this series is available on the following web site:
www.microdigitaled.com
منابع کتاب کتاب 80X86 IBM PC and Compatible Computers: Assembly Language, Design, and Interfacing Subsequent Edition
از پشت جلد
این متن از نظر بصری جذاب که توسط کارشناسان به دلیل وضوح و گستردگی موضوعی مورد ستایش قرار گرفته است، رویکردی ساده و سیستماتیک برای آموزش اصول برنامه نویسی زبان اسمبلی 80x86 و معماری رایانه شخصی ارائه می دهد. این به خوانندگان یک تجربه یادگیری عملی و سرگرم کننده ارائه می دهد و مفاهیم را با مثال های متعدد و سؤالات مروری تقویت می کند. از ابزار Debug برای نشان دادن عملکردی که دستورالعمل انجام می دهد استفاده می کند و سپس یک برنامه نمونه برای نمایش کاربرد آن ارائه می دهد. متن به معماری، پشتیبانی از تراشه ها، اتوبوس ها، تکنیک های رابط، برنامه نویسی سیستم، ویژگی های هارد دیسک و موارد دیگر می پردازد.
چاپ چهارم:
- تمامی ریزپردازنده های 80x86 از 8088 تا Pentium Pro را پوشش می دهد.
- برنامه نویسی اسمبلی و C را ترکیب می کند و برنامه نویسی C را در آخرین بخش هر فصل پوشش می دهد.
- دستورالعمل های 80x86 را با مثال هایی از نحوه استفاده از آنها معرفی می کند.
- درک اولیه سیستم های شماره گذاری باینری و هگز را تضمین می کند.
- بحث و تجزیه و تحلیل تفاوت های سخت افزاری بین تراشه های 8086، 286، 386، 486، Pentium و Pentium Pro.
- بحث 8 بیتی. رابط 16 بیتی و 32 بیتی ریزپردازنده های 80x86.
- با استفاده از بخشهایی از برنامهها از مرجع فنی IBM PC، رویکردی در دنیای واقعی به برنامهنویسی سیستم رایانه شخصی نشان میدهد.
- نمای کلی گذرگاه USB را ارائه می دهد.
درباره نویسنده
محمدعلی مزیدی دارای مدرک کارشناسی ارشد از دانشگاه متدیست جنوبی و دانشگاه تگزاس در دالاس است و در حال حاضر مدرک دکترای خود را دارد. در گروه مهندسی برق دانشگاه متدیست جنوبی. او یکی از بنیانگذاران و محقق ارشد گروه آموزشی میکروپروسسور است، شرکتی که به ارائه دانش ریزپردازندهها به گستردهترین مخاطبان ممکن اختصاص دارد. او همچنین طراحی سیستم مبتنی بر ریزپردازنده را در موسسه فناوری DeVry در دالاس، تگزاس تدریس می کند.
جانیس گیلیسپی مزیدی دارای مدرک کارشناسی ارشد علوم کامپیوتر از دانشگاه تگزاس شمالی است. او پس از چندین سال تجربه به عنوان یک مهندس نرم افزار در دالاس، گروه آموزشی میکروپروسسور را تأسیس کرد، جایی که او نویسنده ارشد فنی، مدیر تولید، و مسئول توسعه و آزمایش نرم افزار است.
مزیدی ها از سال 1985 ازدواج کرده اند و دو پسر به نام های رابرت نبیل و مایکل جمال دارند.
گزیده. © تجدید چاپ با اجازه. تمامی حقوق محفوظ است.
پیشگفتار جلد اول و دوم
هدف
این جلد ترکیبی برای استفاده در دوره های سطح کالج در نظر گرفته شده است که در آنها برنامه نویسی زبان اسمبلی و رابط کامپیوتر 80x86 مورد بحث قرار می گیرد. این نه تنها پایه و اساس برنامه نویسی به زبان اسمبلی را ایجاد می کند، بلکه یک درمان جامع از طراحی و رابط کامپیوتر با ابعاد 80x86 را برای دانشجویان رشته های مهندسی و علوم کامپیوتر فراهم می کند. این جلد برای کسانی در نظر گرفته شده است که مایلند درک عمیقی از عملکرد داخلی رایانه های شخصی IBM، PS و رایانه های سازگار با 80x86 به دست آورند. این پایه ای برای طراحی و رابط سیستم های مبتنی بر ریزپردازنده با استفاده از نمونه واقعی رایانه شخصی IBM 80x86 ایجاد می کند. علاوه بر این، میتواند توسط تکنسینهای مجرب، مهندسان سختافزار، دانشمندان کامپیوتر و علاقهمندانی که میخواهند رابط رایانه شخصی و جمعآوری دادهها را انجام دهند، استفاده شود.
پیش نیازها
خوانندگان باید علاوه بر گذراندن دوره دیجیتال مقدماتی، آشنایی حداقلی با رایانه شخصی IBM و سیستم عامل DOS داشته باشند. دانستن زبان های برنامه نویسی دیگر مفید خواهد بود، اما ضروری نیست.
اگرچه اکثریت قریب به اتفاق رایانه های شخصی فعلی از ریزپردازنده های 386، 486 یا پنتیوم استفاده می کنند، طراحی آنها بر اساس IBM PC/AT، یک سیستم ریزپردازنده 80286 است که در سال 1984 معرفی شد. بخش خوبی از ویژگی های PC/AT، بنابراین محدودیت های آن، مبتنی است در رایانه شخصی اصلی IBM، یک سیستم ریزپردازنده 8088، که در سال 1981 معرفی شد. به عبارت دیگر، نمی توان انتظار داشت که فلسفه معماری رایانه شخصی 80x86 و سیگنال های شکاف گسترش آن را به طور کامل درک کرد، مگر اینکه PC/AT 80286 و زیر مجموعه آن، رایانه شخصی IBM /XT، ابتدا درک می شوند. به همین دلیل، ریزپردازنده های 8088 و 80286 را در فصل 9 توضیح می دهیم.
مطالب جلد اول
یک رویکرد سیستماتیک و گام به گام در پوشش جنبه های مختلف برنامه نویسی به زبان اسمبلی استفاده شده است. مثالها و برنامههای نمونه زیادی برای شفافسازی مفاهیم و فراهم کردن فرصتی برای دانشآموزان برای یادگیری از طریق انجام دادن ارائه میشود. سوالات مروری در پایان هر بخش برای تقویت نکات اصلی بخش ارائه شده است. ما احساس می کنیم که یکی از کارکردهای کتاب درسی این است که دانش آموز را با اصطلاحات مورد استفاده در ادبیات فنی و صنعت آشنا کند، بنابراین در این متن از آن دستورالعمل پیروی کرده ایم.
فصل 0 مفاهیم سیستم های اعداد (دودویی، اعشاری و هگزا) و معماری کامپیوتر را پوشش می دهد. اکثر دانشآموزان این مفاهیم را در دورههای قبلی یاد گرفتهاند، اما فصل 0 یک نمای کلی برای آن دسته از دانشآموزانی که این مفاهیم را یاد نگرفتهاند، یا ممکن است نیاز به تجدید حافظه داشته باشند، ارائه میکند.
فصل 1 تاریخچه مختصری از تکامل ریزپردازندههای x86 و مروری بر عملکرد داخلی 8086 به عنوان پایه تمام پردازندههای x86 ارائه میکند. فصل 1 باید همراه با ضمیمه A (مقدمه ای آموزشی برای DEBUG) استفاده شود تا دانش آموز بتواند مفاهیمی را که در رایانه شخصی یاد می گیرد آزمایش کند. ترتیب موضوعات در پیوست A به گونه ای طراحی شده است که با ترتیب موضوعات ارائه شده در فصل 1 مطابقت داشته باشد. بنابراین، دانش آموز می تواند بدون نیاز به یادگیری نحوه استفاده از اسمبلر، برنامه نویسی را با DEBUG آغاز کند.
فصل 2 استفاده از اسمبلرها برای ایجاد برنامه ها را توضیح می دهد. اگرچه برنامههای موجود در این کتاب با اسمبلر MASM مایکروسافت توسعه و آزمایش شدهاند، ممکن است از هر اسمبلر سازگار با اینتل مانند TASM Borland استفاده شود.
فصل 3 بخش عمده ای از دستورالعمل های منطقی و حسابی برای اعداد بدون علامت، به علاوه عملیات بیتی در C را معرفی می کند.
فصل 4 وقفه های DOS و BIOS را معرفی می کند. برنامههای اسمبلی و C به دانشآموز اجازه میدهند از صفحهکلید ورودی دریافت کرده و خروجی را به مانیتور ارسال کنند. علاوه بر این، برنامه نویسی وقفه در C و همچنین نحوه قرار دادن کد زبان اسمبلی در برنامه های C توضیح داده شده است.
فصل 5 نحوه استفاده از ماکروها برای توسعه برنامههای زبان اسمبلی را به شیوهای کارآمدتر و ساختارمندتر شرح میدهد. ما همچنین تماس های تابع ماوس INT 33H و برنامه نویسی ماوس را پوشش می دهیم.
فصل 6 دستورالعمل های حسابی و منطقی برای اعداد علامت دار و همچنین دستورالعمل های پردازش رشته را پوشش می دهد.
فصل 7 در مورد برنامه نویسی ماژولار و چگونگی توسعه برنامه های زبان اسمبلی بزرگتر با تقسیم آنها به ماژول های کوچکتر برای کدگذاری و آزمایش جداگانه بحث می کند. علاوه بر این، پیوند ماژول های زبان اسمبلی با برنامه های C به طور کامل توضیح داده شده است.
فصل 8 برخی از مفاهیم 32 بیتی برنامه نویسی 80386 و 80486 را معرفی می کند. اگرچه این کتاب بر برنامه نویسی 16 بیتی تأکید دارد، اما 386/486 برای کمک به دانش آموز برای درک قدرت پردازنده های 32 بیتی معرفی شده است. چندین برنامه در خانواده 80x86 اجرا می شوند تا بهبود چشمگیر چرخه ساعت را با CPU های جدیدتر نشان دهند.
مطالب جلد دوم
فصل 9 ریزپردازندههای 8088 و 286 و تراشههای پشتیبان را به تفصیل شرح میدهد و نحوه استفاده از آنها در PC/XT/AT اصلی IBM را نشان میدهد. علاوه بر این، منشاء و عملکرد آدرس، داده ها و سیگنال های کنترلی شکاف توسعه ISA توضیح داده شده است.
فصل 10 مقدمهای بر انواع حافظههای RAM و ROM، رابط آنها با ریزپردازنده، نقشه حافظه رایانه شخصی 80x86، مسئله زمانبندی در رابط حافظه با گذرگاه ISA، و تکنیکهای بایت و بیت برابری کنترلی برای اطمینان از دادهها ارائه میکند. یکپارچگی در رم و رام
فصل 11 به رابط پورت های I/O، استفاده از دستورالعمل های IN و OUT در 80x86 و رابط و برنامه نویسی تراشه جانبی قابل برنامه ریزی 8255 اختصاص دارد. ما برنامه نویسی I/O را به چندین زبان نیز توصیف می کنیم.
فصل 12 آموزش رابط PC و Bus Extender را پوشش میدهد که برای اتصال رایانههای شخصی به دستگاههایی برای جمعآوری دادهها مانند LCD، موتورهای پلهای، ADC، DAC و حسگرها استفاده میشود.
فصل 13 استفاده از تراشه تایمر 8253/54 در رایانه شخصی 80x86 و همچنین نحوه تولید موسیقی و تأخیر زمانی را مورد بحث قرار می دهد.
فصل 14 به توضیح وقفه های سخت افزاری و نرم افزاری، استفاده از کنترل کننده وقفه 8259، مبدا و تخصیص سیگنال های IRQ در اسلات های توسعه باس ISA و وقفه های استثنا در ریزپردازنده های 80x86 اختصاص دارد.
فصل 15 به مفاهیم دسترسی مستقیم به حافظه (DMA)، استفاده از تراشه 8237 DMA در رایانه شخصی 80x86، و کانال های DMA و سیگنال های مرتبط در گذرگاه ISA اختصاص دارد.
فصل 16 اصول مانیتورهای ویدیویی و حالتهای مختلف ویدیویی و آداپتورهای رایانه شخصی، علاوه بر نیازهای حافظه بردهای ویدیویی مختلف در حالت گرافیکی را پوشش میدهد.
فصل 17 اصول ارتباط سریال، رابط و برنامه نویسی تراشه DART 8250/16450/16550 نیمه هادی ملی، تراشه USART 8251 اینتل و تأیید صحت داده ها با استفاده از روش CRC را مورد بحث قرار می دهد.
فصل 18 رابط و برنامه نویسی صفحه کلید در رایانه شخصی 80x86، علاوه بر رابط پورت چاپگر و برنامه نویسی را پوشش می دهد. علاوه بر این، بحث در مورد انواع پورت های موازی مانند EPP و ECP گنجانده شده است.
فصل 19 سازماندهی و اصطلاحات ذخیره سازی فلاپی و هارد دیسک را مورد بحث قرار می دهد. همچنین نحوه نوشتن برنامه های زبان اسمبلی برای دسترسی به فایل ها با استفاده از فراخوانی تابع INT 21 H DOS را نشان می دهیم.
فصل 20 پردازنده مشترک ریاضی 80x87، برنامه نویسی و رابط آن، و انواع داده های نقطه شناور دقیق تک و دو IEEE را بررسی می کند.
فصل 21 برنامهنویسی و سختافزار ریزپردازنده 386 را بررسی میکند، حالتهای واقعی و محافظت شده را با هم مقایسه میکند و توضیح میدهد، و پیادهسازی حافظه مجازی را مورد بحث قرار میدهد.
فصل 22 به رابط حافظه های پرسرعت اختصاص دارد و انواع مختلف DRAM از جمله EDO و SDRAM را تشریح می کند و حافظه کش و سازمان های مختلف کش و اصطلاحات را به طور مفصل بررسی می کند.
در فصل 23 ویژگی های اصلی 486، Pentium و Pentium Pro را شرح می دهیم و این ریزپردازنده ها را با پردازنده های RISC مقایسه می کنیم. فصل 23 همچنین بحثی در مورد فن آوری MMX و نحوه نوشتن برنامه هایی برای تشخیص اینکه یک کامپیوتر دارای کدام CPU است ارائه می دهد.
فصل 24 ساختار MS DOS و نقش CON FIG.SYS و فایلهای دستهای را در رایانه شخصی 80x86، نوشتن برنامههای TSR (پایان دادن و ماندن ساکن) و درایورهای دستگاه توضیح میدهد.
فصل 25 اصطلاحات حافظه PC 80x86 را توضیح می دهد، مانند حافظه معمولی، حافظه گسترش یافته، بلوک حافظه بالایی، منطقه حافظه بالا، و همچنین مدیریت حافظه MS DOS.
فصل 26 مروری بر فناوری IC از جمله پیشرفت های اخیر در ساخت IC ارائه می دهد، رابط IC و مسائل طراحی سیستم را تشریح می کند، و تشخیص و تصحیح خطا را پوشش می دهد.
فصل 27 به بحث در مورد انواع مختلف گذرگاه های رایانه شخصی مانند ISA، EISA، USB، مقایسه عملکرد آنها، گذرگاه محلی و ویژگی های گذرگاه محلی PCI اختصاص دارد.
در فصل 28 نحوه استفاده از زبان C برای دسترسی به فراخوانیهای تابع DOS، وقفههای بایوس، حافظه، پورتهای ورودی/خروجی و رم CMOS 80x86 را نشان میدهیم.
ضمیمه ها
ضمیمه ها به گونه ای طراحی شده اند که تمام مطالب مرجع مورد نیاز برای موضوعات تحت پوشش این مجلد ترکیبی را ارائه دهند، به طوری که نیازی به ارجاع اضافی نباشد.
ضمیمه A یک مقدمه آموزشی برای DEBUG ارائه می دهد. ضمیمه B فهرستی از مجموعه دستورالعمل های 8086 اینتل به همراه چرخه های ساعت برای ریزپردازنده های 80x86 را ارائه می دهد. ضمیمه C دستورالعمل های اسمبلر را با مثال هایی از کاربرد آنها توضیح می دهد. ضمیمه D برخی از فراخوانی های تابع DOS 21 H و عملکردهای موس INT 33H را فهرست می کند. پیوست E فراخوانی های تابع برای وقفه های مختلف BIOS را فهرست می کند. ضمیمه F جدولی از کدهای d-1SCII را ارائه می دهد. پیوست G نقشه ورودی/خروجی رایانه های ISA مبتنی بر 80x86 را فهرست می کند. ضمیمه H شرحی از ناحیه داده BIOS ارائه می دهد. پیوست I حاوی برگه های داده برای تراشه های آی سی مختلف است.
راهنمای آزمایشگاه
دفترچه راهنمای آزمایشگاه این مجموعه در وب سایت زیر موجود است:
www.microdigitaled.com
ارسال نظر درباره کتاب 80X86 IBM PC and Compatible Computers: Assembly Language, Design, and Interfacing Subsequent Edition